// projects/oa/pages/my_module/foot/my_foot.js
// 导入路径辅助模块，避免重复引用
const pathImport = require('../helpers/path_import.js');
const { pageHelper, cloudHelper } = pathImport;;
const ProjectBiz = require('../../../comm/biz/project_biz.js');
const PassportBiz = require('../../../../../config/passport_biz_config.js');
// 引入MobX相关
const { createStoreBindings } = require('../../../../../miniprogram_npm/mobx-miniprogram-bindings/index');
// 修正导入路径，使用modules路径
const { userStore } = require('../../../../../store/modules/user/index.js');
const { footStore } = require('../../../../../store/global/fav_foot.js');

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		isLoad: false
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad(options) {
		// 创建MobX绑定
		this.storeBindings = createStoreBindings(this, {
			store: userStore,
			fields: ['isLogin', 'user'],
			actions: ['init']
		});
		
		// 创建足迹MobX绑定
		this.footStoreBindings = createStoreBindings(this, {
			store: footStore,
			fields: ['footList', 'loading'],
			actions: ['loadFootList', 'clearFootList']
		});

		// 初始化用户状态
		this.init();
		
		// 页面初始化
		ProjectBiz.initPage(this);
		
		// 加载足迹数据
		this._loadFootList();
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady() {
		// 页面准备完成后的逻辑
	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow() {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide() {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload() {
		// 清理MobX绑定
		this.storeBindings.destroyStoreBindings();
		this.footStoreBindings.destroyStoreBindings();
	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: async function() {
		await this._loadFootList(true);
		wx.stopPullDownRefresh();
	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function() {},

	url: function(e) {
		pageHelper.url(e, this);
	},

	_loadFootList: async function(forceRefresh = false) {
		// 先设置加载状态
		this.setData({
			isLoad: false
		});

		// 检查登录状态
		if (!this.data.isLogin) {
			this.setData({
				isLoad: true
			});
			return;
		}

		// 使用MobX中的loadFootList方法加载数据
		this.loadFootList();
		
		this.setData({
			isLoad: true
		});
	},

	/**
	 * 清空足迹
	 */
	bindClearTap: function(e) {
		let that = this;
		let callback = function() {
			that.clearFootList();
			pageHelper.showSuccToast('清空成功');
		}
		pageHelper.showConfirm('确认清空所有足迹吗？', callback);
	}
})